内存存储部分设计

〇.背景

本文所属目录层次为:

-> 1.硬件设计
    -> 1.原理图设计
        -> 3.内存存储部分设计

主要介绍A13的DRAM设计和存储设计

一.A13 DRAM控制器介绍

A13的DRAM控制器支持DDR2和DDR3内存,最高支持到512MB地址空间,最高时钟频率533MHz(也即DDR1066)。 支持到16bit的DDR2和DDR3,然而实际在支持列表里只有8bit 256MB 的DDR3支持:

如果使用8bit 256MB的DDR3内存,那么需要两片DDR来组512MB内存,需要使用T型或fly-by拓扑layout,增加了PCB的复杂度,所以在这里冒一点软件上的技术风险,设计使用一片 256M*16bit的DDR3作为内存,这样就可能需要修改boot0的DDR初始化部分代码了。

二.DDR3介绍 及 原理图

DDR3内存颗粒在高性能的Cortex-A系列芯片里比较常用,常用速率有800,1066,1333,1600等。 DDR3同DDR2一样,可以在时钟的上下沿传递数据,所以实际的时钟频率是400/533/666/800等。 DDR3相对DDR2加入了很多新特性,这里就不赘述,可以参见:

http://blog.csdn.net/shanghaiqianlun/article/details/6976804

DDR3的连接如下图,引脚主要可分为电源引脚和信号引脚

DDR3电源引脚

  1. VDDQ,VSSQ 数据线的电源供应,1.35/1.5V兼容
  2. VDD,VSS 芯片电源供应,1.35/1.5V兼容
  3. VREFCA,VREFDQ 分别是CA和DQ的参考电压,为VDD/2,单片DDR芯片可以直接由精密电阻分压获得参考电压,多片DDR则需要专用参考电压生成芯片。
  4. ZQ DDR3新增的脚,在这个引脚上接有240欧姆的精密参考电阻,可以通过片上校准引擎(On-Die Calibration Engine,ODCE)来自动校验数据输出驱动器导通电阻与ODT的终端电阻值。

DDR3信号引脚

  1. 数据线组 每组数据线间控制等长,以DQS,DQSN为参照
    1. DQ0~7,DQS0,DQS0N,DM0;
    2. DQ8~15,DQS1,DQS1N,DM1;
  2. 地址线组
    1. A0~A15
    2. BA0~BA2 bank地址
  3. 时钟线组
    1. CLK和CLKN ,建议外部串接20~30欧电阻
  4. 控制线组
    1. CS#,片选,低有效
    2. ODT,On Die Termination,可以省去外接终端电阻
    3. RAS#,CAS#,WE#,命令输入

三.A13 SD 控制器介绍

A13的SD控制器 支持SD1.0~3.0,MMC3.3~4.3,最高可以支持到UHS-1(带宽104MB/s,即时钟速率208MHZ) A13有两个SD接口,SDC0 和SDC2 其中SDC0是boot流程中的首选接口,与UART0复用 SDC2也是boot接口之一,与Nand接口复用,SDC2是8bit的SD接口,可以连接EMMC。

不过由于eMMc芯片的封装较为精密,所以本次DIY不会使用。 而Nand封装虽然常用,但是Nand的价格仍然较tf卡贵很多,所以也不使用。 而TF卡既便宜,烧写方式也比nand什么的简单,还可以说是家中常备的,所以本次DIY使用的系统存储介质就选用TF卡。

四.SD卡引脚介绍 及 原理图

TF卡的原理图比较简单,如上图所示,主要是4线数据线,时钟线和命令线。 除了时钟线之外的信号线需要加上上拉电阻保证信号稳定。 这里使用的自弹式tf卡槽还有个tf检测引脚,这里暂不连接。